An ever-increasing number of applications (i.e., computer software) with various features are available to users of personal computers. Users can tailor the operation of these applications to suit their needs by specifying various configuration parameters. For example, a browser application may have a configuration parameter that provides a URL of a web page that is displayed initially whenever the browser application starts (i.e., a “home page”). The browser application may also have configuration parameters that identify programs to be invoked to process certain types of content (e.g., a “jpeg” file) and that specify passwords to be used when the application connects to various servers. The values of the configuration parameters can be stored in application-specific configuration files such as UNIX resource files, or they can be stored in a central registry such as the Windows® registry file. The applications access these configuration files to retrieve the values of their configuration parameters.
If certain configuration parameters have incorrect values, then the applications may exhibit an undesired behavior. For example, if the value of a home page configuration parameter is not set correctly, then when the browser application starts, it will exhibit an undesired behavior by not displaying a home page or displaying the wrong home page. If a configuration parameter incorrectly indicates a certain text editor should be invoked to process a graphics file, then the undesired behavior will be the incorrect display of the graphics content. Similarly, if a password configuration parameter has the wrong password, then failure to connect to the server will be the undesired behavior.
Because of the complexity of applications and their large number of configuration parameters, it can be very time-consuming to troubleshoot a problem and determine which configuration parameters are at fault for causing an application to exhibit undesired behavior. Most users of personal computers have difficulty performing this troubleshooting. As a result, users typically rely on technical support personnel to assist in troubleshooting. This technician-assisted troubleshooting not only can be expensive, but users may also experience a significant productivity loss as a result of their inability to effectively use an application that is exhibiting an undesired behavior.
Typically, technical support personnel use an ad-hoc approach to troubleshooting configuration problems. Such personnel generally use knowledge gained from experiencing similar problems and will try to narrow in on the at-fault configuration parameter through a process of elimination. This ad-hoc approach can take a considerable amount of time and can take even longer if the problem is the result of a combination of configuration parameters whose values are incorrect. In some cases, the technical support personnel may compare the values of the configuration parameters to “ideal” values for that application. Because of the large number of configuration parameters available and the large number of possible values for each configuration parameter, many of the configuration parameters will have no “ideal” value. Thus, technical support personnel still need to review those values of the application that are different from the ideal values.
A troubleshooting system for automatically identifying a configuration parameter that is at fault for causing an application to exhibit an undesired behavior is described in U.S. patent application Ser. No. 10/918,786, entitled “METHOD AND SYSTEM FOR TROUBLESHOOTING A MISCONFIGURATION OF A COMPUTER SYSTEM BASED ON CONFIGURATIONS OF OTHER COMPUTER SYSTEMS,” filed on Aug. 13, 2004, which is hereby incorporated by reference. That troubleshooting system collects configuration information (e.g., configuration parameter names and their values) from computer systems that may have the same application installed. The troubleshooting system then analyzes the configuration parameters of the application that is exhibiting the undesired behavior and the configuration parameters collected from the other computer systems. Based on this analysis, the troubleshooting system identifies which configuration parameter is likely to be at fault for causing the undesired behavior.
The retrieving of configuration information from other computer systems may raise privacy and integrity issues. The privacy issues may relate to configuration information such as listings of web sites visited, passwords, and so on that a user may not want to divulge. The integrity issues arise when a computer system lies about its configuration information. The lie may be promulgated because the user of the computer system is malicious or because the integrity of the computer system has been compromised, for example, by a virus or worm.
It would be desirable to have a system that would allow for the retrieval of information, such as configuration information, from other computer systems in a way that would preserve the privacy of the information and help ensure the integrity of the retrieved information.